bitkeeper revision 1.1159.1.39 (411b2c1eB-OtkNjmHHNtVbwq7l26OA)
authormjw@wray-m-3.hpl.hp.com <mjw@wray-m-3.hpl.hp.com>
Thu, 12 Aug 2004 08:36:46 +0000 (08:36 +0000)
committermjw@wray-m-3.hpl.hp.com <mjw@wray-m-3.hpl.hp.com>
Thu, 12 Aug 2004 08:36:46 +0000 (08:36 +0000)
Add xm migrate command.

.rootkeys
tools/python/xen/xend/XendMigrate.py
tools/python/xen/xm/main.py
tools/python/xen/xm/migrate.py [new file with mode: 0644]

index 7b0e0c9a5be5ee5d3a72f3c61af99565635c6f19..eca19dc2bc21327cb6c215566e70205141112cc6 100644 (file)
--- a/.rootkeys
+++ b/.rootkeys
 40f552eariuUSB9TWqCPnDLz5zvxMw tools/python/xen/xm/destroy.py
 40e41cd2w0I4En6qrJn4em8HkK_oxQ tools/python/xen/xm/help.py
 40cf2937isyS250zyd0Q2GuEDoNXfQ tools/python/xen/xm/main.py
+411b2c1ehdEGO_CwG0tvn85Q-Tfh5g tools/python/xen/xm/migrate.py
 40cf2937PSslwBliN1g7ofDy2H_RhA tools/python/xen/xm/opts.py
 40cf2937Z8WCNOnO2FcWdubvEAF9QQ tools/python/xen/xm/shutdown.py
 40fcefb2K1xqVVT4D-p7nL2GzS4scg tools/sv/Main.rpy
index 1ee32f90c07acfb027d2bd9e9d042702cfec9df5..5b10f4c358397204156750bae1856754d66702f7 100644 (file)
@@ -289,7 +289,7 @@ class XendMigrateInfo(XfrdInfo):
             eserver.inject('xend.migrate.ok', self.sxpr())
         else:
             self.state = 'error'
-            self.error(XendError("save failed"))
+            self.error(XendError("migrate failed"))
             eserver.inject('xend.migrate.error', self.sxpr())
 
 class XendSaveInfo(XfrdInfo):
index 16cdc0bdbb96989e8dd58de0acbe39f8d3eefd28..09bf7266c998e5f5cd66b820d3a942111c577a54 100644 (file)
@@ -11,7 +11,7 @@ from xen.xend import PrettyPrint
 from xen.xend import sxp
 from xen.xend.XendClient import XendError, server
 from xen.xend.XendClient import main as xend_client_main
-from xen.xm import create, destroy, shutdown
+from xen.xm import create, destroy, migrate, shutdown
 
 class Group:
 
@@ -296,6 +296,19 @@ class ProgRestore(Prog):
 
 xm.prog(ProgRestore)
 
+class ProgMigrate(Prog):
+    group = 'domain'
+    name = "migrate"
+    info = """Migrate a domain to another machine."""
+
+    def help(self, args):
+        migrate.help(arg)
+    
+    def main(self, args):
+        migrate.main(args)
+
+xm.prog(ProgMigrate)
+
 class ProgList(Prog):
     group = 'domain'
     name = "list"
diff --git a/tools/python/xen/xm/migrate.py b/tools/python/xen/xm/migrate.py
new file mode 100644 (file)
index 0000000..2ad1894
--- /dev/null
@@ -0,0 +1,41 @@
+# Copyright (C) 2004 Mike Wray <mike.wray@hp.com>
+
+"""Domain migration.
+"""
+
+import sys
+
+from xen.xend.XendClient import server
+from xen.xm.opts import *
+
+DOM0_NAME = 'Domain-0'
+DOM0_ID = '0'
+
+gopts = Opts(use="""[options] DOM HOST
+
+Migrate domain DOM to host HOST.
+The transfer daemon xfrd must be running on the
+local host and on HOST.
+""")
+
+gopts.opt('help', short='h',
+         fn=set_true, default=0,
+         use="Print this help.")
+
+def help(argv):
+    gopts.usage()
+    
+def main(argv):
+    opts = gopts
+    args = opts.parse(argv)
+    if opts.vals.help:
+        opts.usage()
+        return
+    if len(args) != 2:
+        opts.err('Invalid arguments')
+    dom = args[0]
+    dst = args[1]
+    if dom in [DOM0_NAME, DOM0_ID]:
+        opts.err('Cannot migrate ' + dom)
+    server.xend_domain_migrate(dom, dst)
+